﻿#include <iostream>
#include <windows.h>
#include <conio.h>
#include "thuvien.h"
#include "strucths.h"
void Game(game &bom,int x,int y)
{
	system("cls");
	system("color 07");
	incover(bom);
	int i=0,j=0;
	gotoxy(x,y);
	int c;
	c=0;
	do
	{
		flushall();
		c=getch(); //lấy giá trị phím đã ấn
		if (c==75) x=x-4;  //các câu lệnh thay đổi tọa độ con trỏ theo phím mũi tên
		if (c==77) x=x+4;
		if (c==80) y=y+2;
		if (c==72) y=y-2;
		if (x<7) x=7+(bom.n-1)*4; //các câu lệnh kiểm tra vị trí con trỏ, nếu vượt quá giới hạn ma trận thì qua lại điểm đối diện
		if (y<4) y=4+(bom.m-1)*2;
		if (x>7+(bom.n-1)*4) x=7;
		if (y>4+(bom.m-1)*2) y=4;  
		i=(y-4)/2; //chuyển đổi tọa độ con trỏ sang tọa độ ô trong ma trận
		j=(x-7)/4;
		gotoxy(x,y); //gọi hàm con trỏ

		if (c==13&&bom.mtcover[i][j]==88) //dùng phím enter để đặt cờ
		{
				bom.mtcover[i][j]=70; //ghi vào ma trận cover số 70 (mã ASCII của chữ "F"-Flag-Cờ)
				kiemtra(i,j,bom);
				Game(bom,x,y); //nếu chưa thắng gọi lại hàm chọn ô
		}
		
		if (c==27) //Nếu ấn phím ESC thì dừng màn chơi và vào MENU lựa chọn lưu hay thoát
			pause(bom);

		printf("");
	}
	while (c!=32);
	bom.mtcover[i][j]=bom.mt[i][j]; //Copy giá trị ô tương ứng từ mt vào mtcover
	kiemtra(i,j,bom); //gọi hàm kiểm tra điều kiện thua và loang ô 
	if (bom.mtcover[i][j]!=-1&&ktwin(bom)==false) //Nếu chưa thua thì gọi lại màn chơi
		Game(bom,x,y);
}
void gotoxy(short x,short y) //Hàm xác định tọa độ con trỏ
{
	HANDLE hConsoleOutput;
	COORD Cursor_an_Pos = { x,y};
	hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
}
